﻿namespace MobileTrack.Web.ViewModels
{
    using System;
    using System.Globalization;
    using System.Web.Security;
    using MobileTrack.Core.Model;

    public class SeguimientoViewModel
    {
        public SeguimientoViewModel(Seguimiento seguimiento, Venta venta)
        {
            if (seguimiento == null)
            {
                throw new ArgumentNullException("seguimiento");
            }

            var user = Membership.GetUser(seguimiento.ResponsableId);

            this.Id = seguimiento.Id;
            this.Fecha = seguimiento.Fecha.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
            this.Estado = ModelHelper.ToString(seguimiento.Estado);
            this.Comprobante = seguimiento.Comprobante;
            this.Responsable = (user == null) ? "N/A" : user.UserName;
            this.Ubicacion = seguimiento.Sucursal.DisplayName;
            this.Miscelaneos = (venta != null) ? SeguimientoViewModel.GetMiscelaneos(seguimiento.Id, seguimiento.Estado) : string.Empty;
        }

        public long? Id { get; set; }

        public string Fecha { get; set; }

        public string Estado { get; set; }

        public string Comprobante { get; set; }

        public string Responsable { get; set; }

        public string Ubicacion { get; set; }

        public string Miscelaneos { get; set; }

        private static string GetMiscelaneos(long id, Estado estado)
        {
            if (estado == MobileTrack.Core.Model.Estado.Vendido)
            {
                return string.Format(CultureInfo.InvariantCulture, "<a href=\"#\" onclick=\"viewAbono({0})\">Abono</a>", id);
            }

            return string.Empty;
        }
    }
}